home *** CD-ROM | disk | FTP | other *** search
/ Kit PC World De Ampliacion De Windows 95 / Kit PC World de ampliacion de Windows 95.iso / clarion / gauge / gauge.z / CWGAUGE.CLW < prev    next >
Text File  |  1995-10-18  |  11KB  |  335 lines

  1. Gauge       PROGRAM
  2.  
  3.             MAP
  4.               INCLUDE('DDE.CLW')
  5.               MODULE('CWGAUGE1.CLW')
  6.                 ViewReadMe
  7.               END
  8.               MODULE('')
  9.                 GetModuleFileName(UNSIGNED,*CSTRING,SIGNED),SIGNED,NAME('GetModuleFileName'),PASCAL,RAW
  10.                 GetModuleHandle(*CSTRING),UNSIGNED,PASCAL,RAW
  11.                 GetModuleUsage(UNSIGNED),UNSIGNED,PASCAL,RAW
  12.                 GetVersion(),UNSIGNED,PASCAL,RAW
  13.               END
  14.               ShowSizes
  15.             END
  16.  
  17. Version     UNSIGNED
  18. Handle      UNSIGNED
  19. ModName     CSTRING('CWGAUGE')
  20. EXEPath     CSTRING(128)
  21. Executable  CSTRING(128)
  22. CWSieve     CSTRING('\CWSIEVE.EXE')
  23. CWSieve32   CSTRING('\CWSIEV32.EXE')
  24. CWDialog    CSTRING('\CWDIALOG.EXE')
  25. CWDialog32  CSTRING('\CWDIAL32.EXE')
  26. VBSieve     CSTRING('\VB\VBSIEVE.EXE')
  27. VBDialog    CSTRING('\VB\VBDIALOG.EXE')
  28. PBSieve     CSTRING('\PB\PBSIEVE.EXE')
  29. PBDialog    CSTRING('\PB\PBDIALOG.EXE')
  30. DSieve      CSTRING('\DELPHI\DPSIEVE.EXE')
  31. DDialog     CSTRING('\DELPHI\DPDIALOG.EXE')
  32.  
  33. Button      BYTE
  34. Channel     LONG
  35. CCycles     STRING(12)
  36. VCycles     STRING(12)
  37. PCycles     STRING(12)
  38. DCycles     STRING(12)
  39. ICCompare   STRING(20)
  40. IVCompare   STRING(20)
  41. IPCompare   STRING(20)
  42. IDCompare   STRING(20)
  43. CDisplays   STRING(12)
  44. VDisplays   STRING(12)
  45. PDisplays   STRING(12)
  46. DDisplays   STRING(12)
  47. WCCompare   STRING(20)
  48. WVCompare   STRING(20)
  49. WPCompare   STRING(20)
  50. WDCompare   STRING(20)
  51. ReturnItem  STRING(20)
  52. Compare     STRING(20)
  53. Ratio       DECIMAL(12,3)
  54. I32Bit      BYTE
  55. W32Bit      BYTE
  56.  
  57. Window WINDOW('The Clarion for Windows Performance Gauge'),AT(,,318,230),FONT('MS Sans Serif',8,,FONT:bold), |
  58.          CENTER,ICON('GAUGE.ICO'),SYSTEM,GRAY
  59.        GROUP('Internal Speed'),AT(3,3,313,100),BOXED
  60.          STRING('Sieve of Eratosthenes'),AT(128,13)
  61.          STRING('Cycles / Minute:'),AT(11,50)
  62.          STRING('Comparison:'),AT(11,63)
  63.          STRING('Clarion for Windows'),AT(56,28)
  64.          CHECK('32 Bit'),AT(73,36),USE(I32Bit)
  65.          STRING(@S12),AT(69,50,40,10),USE(CCycles),CENTER
  66.          STRING('Delphi'),AT(143,28)
  67.          STRING(@S12),AT(133,50,40,10),USE(DCycles),CENTER
  68.          STRING(@S20),AT(123,63,60,10),USE(IDCompare),CENTER
  69.          STRING('Visual Basic'),AT(197,28)
  70.          STRING(@S12),AT(197,50,40,10),USE(VCycles),CENTER
  71.          STRING(@S20),AT(187,63,60,10),USE(IVCompare),CENTER
  72.          STRING('PowerBuilder'),AT(261,28)
  73.          STRING(@S12),AT(262,50,40,10),USE(PCycles),CENTER
  74.          STRING(@S20),AT(252,63,60,10),USE(IPCompare),CENTER
  75.        END
  76.        GROUP('Windows Speed'),AT(3,106,313,100),BOXED
  77.          STRING('Display a Dialog Box'),AT(127,116)
  78.          CHECK('32 Bit'),AT(73,140),USE(W32Bit)
  79.          STRING('Displays / Minute:'),AT(11,153)
  80.          STRING('Comparison:'),AT(11,166)
  81.          STRING('Clarion for Windows'),AT(57,131)
  82.          STRING(@S12),AT(69,153,40,10),USE(CDisplays),CENTER
  83.          STRING('Delphi'),AT(143,131),USE(?String25)
  84.          STRING(@S12),AT(133,153,40,10),USE(DDisplays),CENTER
  85.          STRING(@S20),AT(123,166,60,10),USE(WDCompare),CENTER
  86.          STRING('Visual Basic'),AT(197,131)
  87.          STRING(@S12),AT(197,153,40,10),USE(VDisplays),CENTER
  88.          STRING(@S20),AT(187,166,60,10),USE(WVCompare),CENTER
  89.          STRING('PowerBuilder'),AT(261,131)
  90.          STRING(@S12),AT(262,153,40,10),USE(PDisplays),CENTER
  91.          STRING(@S20),AT(252,166,60,10),USE(WPCompare),CENTER
  92.        END
  93.        BUTTON('Run'),AT(75,80),USE(?ICRun)
  94.        BUTTON('Run'),AT(139,80),USE(?IDRun)
  95.        BUTTON('Run'),AT(203,80),USE(?IVRun)
  96.        BUTTON('Run'),AT(268,80),USE(?IPRun)
  97.        BUTTON('Run'),AT(75,185),USE(?WCRun)
  98.        BUTTON('Run'),AT(139,185),USE(?WDRun)
  99.        BUTTON('Run'),AT(203,185),USE(?WVRun)
  100.        BUTTON('Run'),AT(268,185),USE(?WPRun)
  101.        BUTTON('.EXE Size...'),AT(203,212),USE(?ShowSizes)
  102.        BUTTON('Read Me...'),AT(58,212),USE(?ReadMe)
  103.        BUTTON('Close'),AT(139,212),USE(?Close)
  104.      END
  105.  
  106.  CODE
  107.  
  108.  Handle = GetModuleHandle(ModName)
  109.  Handle = GetModuleFileName(Handle,EXEPath,127)
  110.  EXEPath = SUB(EXEPath,1,INSTRING('.',EXEPath,1)-1)
  111.  EXEPath = SUB(EXEPath,1,LEN(CLIP(EXEPath))-8)
  112.  
  113.  OPEN(Window)                           !Open the window
  114.  Version = GetVersion()
  115.  IF Version <= 01403h
  116.    DISABLE(?I32Bit)
  117.    DISABLE(?W32Bit)
  118.  END
  119.  CCycles = '?'
  120.  DCycles = '?'                          
  121.  VCycles = '?'
  122.  PCycles = '?'
  123.  CDisplays = '?'
  124.  DDisplays = '?'
  125.  VDisplays = '?'
  126.  PDisplays = '?'
  127.  IDCompare = '?'
  128.  IVCompare = '?'
  129.  IPCompare = '?'
  130.  WDCompare = '?'
  131.  WVCompare = '?'
  132.  WPCompare = '?'
  133.  SELECT(?ICRun)
  134.  Button = 0
  135.  ACCEPT                                 !Enable user interface
  136.    CASE EVENT()                         !Process Windows event
  137.    OF EVENT:DDEClosed
  138.      ReturnItem = CLIP(LEFT(CLIPBOARD()))
  139.      ReturnItem = DEFORMAT(ReturnItem)
  140.      DO FormatItem
  141.      EXECUTE Button
  142.        CCycles = ReturnItem
  143.        DCycles = ReturnItem
  144.        VCycles = ReturnItem
  145.        PCycles = ReturnItem
  146.        CDisplays = ReturnItem
  147.        DDisplays = ReturnItem
  148.        VDisplays = ReturnItem
  149.        PDisplays = ReturnItem
  150.      END
  151.      DO ComputeCompares
  152.      Button = 0
  153.  
  154.    OF EVENT:Accepted                    !A field has been accepted
  155.      Button = FIELD() - ?ICRun + 1
  156.      CASE FIELD()                       !Process the field
  157.  
  158.      OF ?ICRun                          !Run the Clarion "Sieve"
  159.        IF I32Bit
  160.          Executable = CLIP(EXEPath) & CWSieve32
  161.        ELSE
  162.          Executable = CLIP(EXEPath) & CWSieve
  163.        END
  164.        RUN(Executable)
  165.        Channel = DDECLIENT('CWSIEVE')
  166.        DDEEXECUTE(Channel,'[Run]')
  167.  
  168.      OF ?IDRun                           !Run the Delphi "Sieve"
  169.        Executable = CLIP(EXEPath) & DSieve
  170.        RUN(Executable)
  171.        Channel = DDECLIENT('DPSIEVE','DpSieve')
  172.  
  173.      OF ?IVRun                           !Run the Visual Basic "Sieve"
  174.        Executable = CLIP(EXEPath) & VBSieve
  175.        RUN(Executable)
  176.        Channel = DDECLIENT('VBSIEVE','SIEVE')
  177.        DDEEXECUTE(Channel,'[Run]')
  178.  
  179.      OF ?IPRun                           !Run the PowerBuilder "Sieve"
  180.        Executable = CLIP(EXEPath) & PBSieve
  181.        RUN(Executable)
  182.        Channel = DDECLIENT('PBSIEVE','SIEVE')
  183.        DDEEXECUTE(Channel,'[Run]')
  184.  
  185.      OF ?WCRun                           !Run the Clarion Dialog box test
  186.        IF W32Bit
  187.          Executable = CLIP(EXEPath) & CWDialog32
  188.        ELSE
  189.          Executable = CLIP(EXEPath) & CWDialog
  190.        END
  191.        RUN(Executable)
  192.        Channel = DDECLIENT('CWDIALOG')
  193.        DDEEXECUTE(Channel,'[Run]')
  194.  
  195.      OF ?WDRun                           !Run the Delphi Dialog test
  196.        Executable = CLIP(EXEPath) & DDialog
  197.        RUN(Executable)
  198.        Channel = DDECLIENT('DPDIALOG','DpDialog')
  199.  
  200.      OF ?WVRun                           !Run the Visual Basic Dialog test
  201.        Executable = CLIP(EXEPath) & VBDialog
  202.        RUN(Executable)
  203.        Channel = DDECLIENT('VBDIALOG','Dialog')
  204.        DDEEXECUTE(Channel,'[Run]')
  205.  
  206.      OF ?WPRun
  207.        Executable = CLIP(EXEPath) & PBDialog
  208.        RUN(Executable)
  209.        Channel = DDECLIENT('PBDIALOG','Dialog')
  210.        DDEEXECUTE(Channel,'[Run]')
  211.  
  212.      OF ?ShowSizes
  213.        ShowSizes
  214.  
  215.      OF ?ReadMe
  216.        ViewReadMe
  217.  
  218.      OF ?Close                           !Close the window
  219.        RETURN                            ! and return to Windows
  220.      END
  221.    END
  222.  END
  223.  
  224. ComputeCompares ROUTINE
  225.   IF CCycles <> '?' AND DCycles <> '?'
  226.     Ratio = DEFORMAT(CCycles) / DEFORMAT(DCycles)
  227.     DO FormatRatio
  228.     IDCompare = Compare
  229.     DISPLAY
  230.   END
  231.   IF CCycles <> '?' AND VCycles <> '?'
  232.     Ratio = DEFORMAT(CCycles) / DEFORMAT(VCycles)
  233.     DO FormatRatio
  234.     IVCompare = Compare
  235.     DISPLAY
  236.   END
  237.   IF CCycles <> '?' AND PCycles <> '?'
  238.     Ratio = DEFORMAT(CCycles) / DEFORMAT(PCycles)
  239.     DO FormatRatio
  240.     IPCompare = Compare
  241.     DISPLAY
  242.   END
  243.   IF CDisplays <> '?' AND DDisplays <> '?'
  244.     Ratio = DEFORMAT(CDisplays) / DEFORMAT(DDisplays)
  245.     DO FormatRatio
  246.     WDCompare = Compare
  247.     DISPLAY
  248.   END
  249.   IF CDisplays <> '?' AND VDisplays <> '?'
  250.     Ratio = DEFORMAT(CDisplays) / DEFORMAT(VDisplays)
  251.     DO FormatRatio
  252.     WVCompare = Compare
  253.     DISPLAY
  254.   END
  255.   IF CDisplays <> '?' AND PDisplays <> '?'
  256.     Ratio = DEFORMAT(CDisplays) / DEFORMAT(PDisplays)
  257.     DO FormatRatio
  258.     WPCompare = Compare
  259.     DISPLAY
  260.   END
  261.  
  262. FormatItem ROUTINE
  263.   IF ReturnItem < 1000
  264.     ReturnItem = FORMAT(ReturnItem,@N5.1)
  265.   ELSE
  266.     ReturnItem = FORMAT(ReturnItem,@N9.0)
  267.   END
  268.   ReturnItem = LEFT(ReturnItem)
  269.  
  270. FormatRatio ROUTINE
  271.   IF Ratio < .1
  272.     Compare = FORMAT(1/Ratio,@N5) & ' times faster'
  273.   ELSIF Ratio < .5
  274.     Compare = FORMAT(1/Ratio,@N4.1) & ' times faster'
  275.   ELSIF Ratio < 1
  276.     Compare = FORMAT((1-Ratio)*100,@P<#P) & ' percent faster'
  277.   ELSIF Ratio < 2
  278.     Compare = FORMAT((Ratio-1)*100,@P<#P) & ' percent slower'
  279.   ELSIF Ratio < 10
  280.     Compare = FORMAT(Ratio,@N4.1) & ' times slower'
  281.   ELSE
  282.     Compare = FORMAT(Ratio,@N5) & ' times slower'
  283.   END
  284.   Compare = LEFT(Compare)
  285.  
  286. ShowSizes   PROCEDURE
  287.  
  288. Sizes WINDOW('Distributable File Sizes'),AT(,,275,194),FONT('MS Sans Serif',8,,FONT:bold),CENTER,SYSTEM, |
  289.          GRAY
  290.        STRING('Display Test'),AT(154,12)
  291.        STRING('"Sieve"Test'),AT(218,12,41,10)
  292.        STRING('Clarion for Windows'),AT(14,32)
  293.        STRING('.EXE Size:'),AT(102,32)
  294.        STRING('343 KB'),AT(166,32),FONT('MS Sans Serif',8,0FF0000H,FONT:bold),RIGHT
  295.        STRING('215 KB'),AT(226,32),FONT('MS Sans Serif',8,0FF0000H,FONT:bold),RIGHT
  296.        STRING('Delphi'),AT(14,55)
  297.        STRING('.EXE Size:'),AT(102,55)
  298.        STRING('308 KB'),AT(166,55),FONT('MS Sans Serif',8,0FF0000H,FONT:bold),RIGHT
  299.        STRING('227 KB'),AT(226,55),FONT('MS Sans Serif',8,0FF0000H,FONT:bold),RIGHT
  300.        STRING('Visual Basic'),AT(14,78)
  301.        STRING('.EXE Size:'),AT(102,78)
  302.        STRING('13 KB'),AT(169,78),RIGHT
  303.        STRING('7 KB'),AT(234,78),RIGHT
  304.        STRING('.DLL'),AT(114,91)
  305.        STRING('394 KB'),AT(165,91),RIGHT
  306.        STRING('394 KB'),AT(226,91),RIGHT
  307.        STRING('.VBXs'),AT(114,104)
  308.        STRING('249 KB'),AT(165,104),RIGHT
  309.        STRING('65 KB'),AT(230,104),RIGHT
  310.        LINE,AT(160,116,28,0),COLOR(00H)
  311.        LINE,AT(224,116,28,0),COLOR(00H)
  312.        STRING('656 KB'),AT(165,120),FONT('MS Sans Serif',8,0FF0000H,FONT:bold),RIGHT
  313.        STRING('466 KB'),AT(226,120),FONT('MS Sans Serif',8,0FF0000H,FONT:bold),RIGHT
  314.        STRING('PowerBuilder'),AT(18,138)
  315.        STRING('.EXE Size:'),AT(102,138)
  316.        STRING('57 KB'),AT(169,138),RIGHT
  317.        STRING('22 KB'),AT(230,138),RIGHT
  318.        STRING('.DLLs'),AT(114,150)
  319.        STRING('5,134 KB'),AT(159,150),RIGHT
  320.        STRING('5,134 KB'),AT(220,150),RIGHT
  321.        LINE,AT(154,162,34,0),COLOR(00H)
  322.        LINE,AT(218,162,34,0),COLOR(00H)
  323.        STRING('5,191 KB'),AT(159,166),FONT('MS Sans Serif',8,0FF0000H,FONT:bold),RIGHT
  324.        STRING('5,156 KB'),AT(220,166),FONT('MS Sans Serif',8,0FF0000H,FONT:bold),RIGHT
  325.        BUTTON('Close'),AT(22,170),USE(?CloseSizes)
  326.      END
  327.  
  328.   CODE
  329.   OPEN(Sizes)
  330.   ACCEPT
  331.     IF ACCEPTED() = ?CloseSizes THEN RETURN.
  332.   END
  333.   RETURN
  334.  
  335.